Remote control signal masking for multi-mode devices

ABSTRACT

Devices and methods are provided for masking signals from multi-mode remote control devices. A method may include receiving, by a first device, a first key command from the first device or a second device operatively connected to the first device, the first key command indicative of a first infrared (IR) command code received by the first device or the second device. The method may include receiving a non-IR message and determining, based on the message, that the first key command is associated with a second IR command code for controlling a third device. The method may include preventing, based on the determination that the first key command is associated with the second IR command code for controlling the third device, the first key command from causing the first device or the second device to perform an action.

BACKGROUND

People increasingly are using more devices. For example, people mayconsume media using televisions, stereos, game consoles, smart homedevices, and the like. Some media devices may be controlled by infraredcommand codes. However, given the large number of infrared command codesto control many types of devices of many manufacturers, some infraredcommand codes may be similar to one another, resulting in one mediadevice mistakenly identifying an infrared command code intended tocontrol a different device. Accordingly, there is a need to avoid suchmistaken identification of infrared command codes.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example system of remote control signal maskingfor multi-mode devices, in accordance with one or more exampleembodiments of the present disclosure.

FIG. 2 illustrates an example system of remote control signal maskingfor multi-mode devices, in accordance with one or more exampleembodiments of the present disclosure.

FIG. 3 illustrates a flow diagram for a process for remote controlsignal masking for multi-mode devices, in accordance with one or moreexample embodiments of the present disclosure.

FIG. 4 illustrates a flow diagram for a process for remote controlsignal masking for multi-mode devices, in accordance with one or moreexample embodiments of the present disclosure.

FIG. 5 illustrates a flow diagram for a process for remote controlsignal masking for multi-mode devices, in accordance with one or moreexample embodiments of the present disclosure.

FIG. 6 illustrates a block diagram of an example machine upon which anyof one or more techniques (e.g., methods) may be performed, inaccordance with one or more example embodiments of the presentdisclosure.

Certain implementations will now be described more fully below withreference to the accompanying drawings, in which various implementationsand/or aspects are shown. However, various aspects may be implemented inmany different forms and should not be construed as limited to theimplementations set forth herein; rather, these implementations areprovided so that this disclosure will be thorough and complete, and willfully convey the scope of the disclosure to those skilled in the art.Like numbers in the figures refer to like elements throughout. Hence, ifa feature is used across several drawings, the number used to identifythe feature in the drawing where the feature first appeared will be usedin later drawings.

DETAILED DESCRIPTION Overview

Example embodiments described herein provide certain systems, methods,and devices for remote control signal masking for multi-mode devices.

Some remote control devices may operate in multiple modes (e.g.,multi-mode remote control devices). For example, a multi-mode remotecontrol device may emit infrared (IR) codes in an IR mode, and may sendother messages and codes using other wireless techniques, such as Wi-Fi(e.g., defined by the IEEE 802.11 technical standards), Bluetooth (e.g.,defined by the IEEE 802.15.1 technical standard and/or the Bluetoothtechnical specifications), LTE (e.g., defined by the LTE technicalstandard), Zigbee (e.g., defined by the IEEE 802.15.4 technicalstandard), and/or other techniques. Some multi-mode remote controldevices may control multiple devices, such as televisions, receivers,speakers, streaming media devices, game consoles, smart home devices,Internet of Things (IoT) devices, and the like using IR command codesand/or other wireless techniques.

Because of the large and growing number of devices controlled by IRcommand codes, the number of IR command codes needed by multi-moderemote control devices also is increasing. Some IR command codes may besimilar to one another, resulting in devices identifying IR commandcodes that are intended for other devices. For example, an IR commandcode to control a stereo receiver may be similar to another IR commandcode to control a television. When the stereo receiver and thetelevision receive the IR command code, both may perform correspondingactions. For example, a volume up IR command code may respond in thestereo receiver by increasing its volume (e.g., sound volume), and inthe television also performing an unintended action or in sending acommand to another device or to a service (e.g., an application instanceexecuting on the television).

There is therefore a need to mask signals received from multi-moderemote control devices.

In one or more embodiments, a multi-mode remote control device oranother type of device may send one or more messages using Bluetooth,Wi-Fi, or communication techniques other than IR when the multi-moderemote control device or other device sends an IR command code. The oneor more messages may be sent while emitting the IR command code, and mayindicate that the multi-mode remote control device or other device sentan IR command code, and/or may indicate the specific IR command codesent. The IR command code may be intended for a first device (e.g., tocontrol the first device), but may be identified by a second device thatis programmed to respond to a similar IR command code. The second devicemay, in response to identifying the IR command code, send a key commandto the second device or a third device in communication with the seconddevice. Because of the one or more messages, the system software and/orhardware of the second or third device may determine that the keycommand received from the second device is related to the IR commandcode indicated by the one or more messages. In response, the systemsoftware and/or hardware may determine that the IR command code was notintended for the second device.

In one or more embodiments, when the system software and/or hardwaredetermines that the IR command code was not intended for the seconddevice, the system software and/or hardware may mask the reception oftemporally coincident key commands received from the second device. Forexample, the system software and/or hardware may ignore the key commandand subsequent key commands (e.g., may ignore subsequent IR commandcodes emitted by the multi-mode remote control device or other device)for a period of time (e.g., the application instance temporarily maydeactivate an IR mode). The temporary masking of all or some (e.g.,similar key commands based on mapping of key commands with similarities)key commands (e.g., key presses on the multi-mode remote control device)may result in masking intentional key presses intended to control thesecond device. Alternatively, the system software and/or hardware maymask key commands based on a similarity/association between the IRcommand indicated by the one or more messages and another IR commandcode that the system software and/or hardware identifies as an IRcommand code that controls the second device. For example, the seconddevice may have access to a table of IR command codes based on thedevices controlled by the multi-mode remote control device or otherdevices. When the system software and/or hardware receives an indicationthat a first IR command code was emitted, the system software and/orhardware may determine, based on the table, that the first IR commandcode is a code for the first device, and that the second device may becontrolled by a second IR command code that is similar to the first IRcommand code. The system software and/or hardware therefore maydetermine that a key command received from the second device correspondsto the first IR command code, that the second device mistook the firstIR command code for the second IR command code, and may mask the keycommand and one or more subsequent key commands from the second device.For example, the masking may include blocking all ingress IR commandcodes temporarily, or blocking some IR command codes temporarily (e.g.,when a received IR command code maps to a similar IR command code).

In one or more embodiments, the system software and/or hardware may beprogrammed to respond to commands and the one or more messages sent bythe multi-mode remote control device or other device. The second devicemay receive IR command codes emitted by the multi-mode remote controldevice or other device, and an IR stack of the second device may sendcorresponding key commands to the system software and/or hardware. Thesystem software and/or hardware may govern the response of the seconddevice to the IR command codes. In particular, when the system softwareand/or hardware masks a key command received by the second device, thesystem software and/or hardware may prevent the second device fromperforming an action in response to the IR command code that resulted inthe key command being sent to the system software and/or hardware (e.g.,by refraining from sending a corresponding command to control the seconddevice). For example, when the IR command code is a command to increasevolume on a stereo receiver, and a television identifies the IR commandcode, the system software and/or hardware may prevent the televisionfrom responding to the IR command code (e.g., from performing anunintended action).

In one or more embodiments, the table (or similarity map) for IR commandcode similarity may be pre-generated on a per-device coding schemesparse matrix. As a new device is added to the system, the systemsoftware and/or hardware may be in communication with the multi-moderemote control device and/or to other devices to identify the new deviceand the IR command codes for the new device, allowing the table to beupdated with an indication of the new device and the IR command codesfor the new device. Alternatively, the table may be generated on-demandto reduce a preprocessing load for unlikely combinations of devices andIR command codes. The similarity of IR command codes may be establishedby edit distance heuristics (e.g., the based on the clocking andsampling of different IR command codes). The difference (e.g., distance)between any two IR command codes may result in a similarity score. Thecloser the distance, the higher the similarity score between IR commandcodes may be. When the similarity score exceeds a threshold similarityscore, the system software and/or hardware may determine that an IRcommand code indicated by the one or more messages from the multi-moderemote control device may correspond to the key command received fromthe second device, thereby causing the system software and/or hardwareto mask key commands received from the second device. The multi-moderemote control device also may communicate its keymap to the systemsoftware and/or hardware to consider when evaluating IR command codesimilarity.

In one or more embodiments, the IR command code similarity and/ormasking may be performed locally (e.g., on the client device side) orserver-side. For example, the system software and/or hardware may run onthe second device, which may be a client device in a user's environment(e.g., living room). The system software and/or hardware may evaluatethe IR command code similarity and perform masking locally.Alternatively, the system software and/or hardware may provide the IRcommand codes, messages, and/or key commands to a server device foranalysis, and the server may send commands to the system software and/orhardware to perform masking when the server identifies IR command codesimilarity between devices as described above.

The above descriptions are for purposes of illustration and are notmeant to be limiting. Numerous other examples, configurations,processes, etc., may exist, some of which are described in greaterdetail below. Example embodiments will now be described with referenceto the accompanying figures.

Illustrative Processes and Use Cases

FIG. 1 illustrates an example system 100 of remote control signalmasking for multi-mode devices, in accordance with one or more exampleembodiments of the present disclosure.

Referring to FIG. 1 , the system 100 may include a person 102 to provideinputs to control one or more devices. As shown, the person 102 mayprovide voice utterances 106 as inputs (e.g., “Play content,”“Increase/Decrease volume,” “Channel Up/Down,” “Add to playlist,” andthe like) to a remote control device 104 (e.g., a multi-mode remotecontrol device). The inputs to the remote control device 104 also mayinclude button pushes, touches, gestures, and the like, such as thoselisted above. The inputs may correspond to commands sent by the remotecontrol device 104 to one or more devices (e.g., a display 110, aspeaker system 112, a stereo receiver 114, a game console 116, astreaming media device 118, an IR emitter 119, and the like) to controlthe one or more devices. In particular, the remote control device 104,the display 110, the streaming media device 118, and/or the IR emitter119 or another device may emit IR command codes (e.g., IR command codes124) to the one or more devices, the IR command codes 124 correspondingto actions for the one or more devices to perform. For example, an IRcommand code may correspond to an action to turn a device on or off, tochange a setting, to select and present content, and the like. The IRcommand codes 124 may be received by any device capable of detecting theIR command codes 124. Because multiple devices may receive the IRcommand codes 124, there is a possibility that multiple of the devicesmay identify an IR command code as an IR command code for that device(e.g., the display 110 may identify an IR command code as an IR commandcode for the display 110, and the stereo receiver 114 controlling thespeakers 112 may identify the same IR command code as an IR command codefor the receiver 114 and/or the speakers 112). In this manner, an IRcommand code that uniquely corresponds to an action for a single deviceto perform may be misinterpreted by a different device, resulting in thedifferent device performing an action unintended by the person 102.

Still referring to FIG. 1 , because the remote control device 104 may bemulti-modal, the remote control device 104 may send messages 126 (e.g.,non-IR messages) in another communication format/using a differentcommunication technique (e.g., Bluetooth, Wi-Fi, etc.). The remotecontrol device 104 may send the messages 126 during the same time thatthe remote control device 104 emits the IR command codes 124. The one ormore devices (e.g., the display 110 as shown, or alternatively thestreaming media device 118 or another of the devices) may have one ormore applications 130 (e.g., media player applications). When the systemsoftware and/or hardware of one of the devices (such as the display 110or the streaming media device 118—see FIG. 2 ) receives an indication(e.g., a key command) from one of the devices (e.g., the display 110)indicating that the device (e.g., the display 110) received an IRcommand code from the remote control device 104 (or another device, suchas the IR emitter 119, as discussed with reference to FIG. 2 ), thedisplay 110 or the streaming media device 118 may determine whether toignore the key command or to allow the device (e.g., the display 110) toperform an action that corresponds to the key command. To determinewhether or not to ignore the key command, the device (e.g., the display110) may determine whether the remote control device 104 or anotherdevice (e.g., as discussed with reference to FIG. 2 ) sent any of themessages 126 indicating that the remote control device 104 or anotherdevice emitted an IR command code, and whether the IR command codeemitted by the remote control device 104 or another device correspondsto the key command, or whether the IR command code emitted by the remotecontrol device 104 or another device is a different IR command codeintended for another device (e.g., the stereo receiver 114). Using theexample of a volume increase command, the display 110 or the streamingmedia device 118 may determine that the key command received from thedisplay 110 is not the intended command from the remote control device104 or another device, thereby preventing the display 110 fromincreasing its volume while the stereo receiver 114 also increases thevolume of the speakers 112.

In one or more embodiments, the messages 126 may include an indicationof the IR command codes 124 that were emitted by the remote controldevice 104, or may include an indication that the IR command codes 124were emitted without identifying the specific IR command codes 124emitted. The messages 126 may include a time stamp indicating the timewhen the messages 126 were sent, allowing the one or more applications130 to determine that the messages 126 were sent concurrently with theIR command codes corresponding to the key commands received by thedisplay 110 or the streaming media device 118 from a device (e.g., thedevice on which the one or more applications are executing instances, oranother device operatively connected to the device on which the one ormore applications are executing instances). When the messages 126identify the specific IR command codes 124 that were emitted, thedisplay 110 or the streaming media device 118 may identify the specificIR command codes 124 and determine whether they are the same as thecorresponding key commands. If not, the display 110 or the streamingmedia device 118 may discard key commands to prevent the wrong devicefrom performing an action, and may deactivate an IR mode temporarily.When the messages 126 do not identify the specific IR command codes 124that were emitted, the display 110 or the streaming media device 118 maydetermine whether the key command corresponds to an IR command code of adifferent device than the one that provided the key command (e.g., usingsimilarity mapping and/or timing information of the messages 126), andif so, the display 110 or the streaming media device 118 may discard keycommands to prevent the wrong device from performing an action, and maydeactivate an IR mode temporarily. When the display 110 or the streamingmedia device 118 determines that the key command corresponds to the IRcommand code emitted by the remote control device 104, the display 110or the streaming media device 118 may cause a device to perform anaction (e.g., may send one or more signals to the device that providedthe key command to cause that device to perform a corresponding action).

In one or more embodiments, when display 110 or the streaming mediadevice 118 determines that N IR command code was not intended for thedevice that provides the key command to the display 110 or the streamingmedia device 118, the display 110 or the streaming media device 118 maymask the reception of temporally coincident key commands received fromthe device. For example, the display 110 or the streaming media device118 may ignore the key command and subsequent key commands (e.g., mayignore subsequent IR command codes emitted by the remote control device104) for a period of time (e.g., the display 110 or the streaming mediadevice 118 temporarily may deactivate an IR mode). The temporary maskingof all key commands (e.g., key presses on the multi-mode remote controldevice) may result in masking intentional key presses. Alternatively,the display 110 or the streaming media device 118 may mask key commandsbased on a similarity/association between the IR command indicated bythe messages 126 and another IR command code that the display 110 or thestreaming media device 118 identify as an IR command code that controlsthe device that provided the key command. For example, the display 110or the streaming media device 118 may have access to a table of the IRcommand codes 124 based on the devices controlled by the remote controldevice 104 (e.g., established during a set-up process and updated asdevices are added/removed). When the display 110 or the streaming mediadevice 118 receives an indication that a first IR command code wasemitted, the display 110 or the streaming media device 118 maydetermine, based on the table, that the first IR command code is a codefor a different device, and that the device that provided the keycommand may be controlled by a second IR command code that is similar tothe first IR command code. The display 110 or the streaming media device118 therefore may determine that a key command received from a devicecorresponds to the first IR command code, that the device mistook thefirst IR command code for the second IR command code, and may mask thekey command and one or more subsequent key commands received from thedevice.

In one or more embodiments, the display 110 or the streaming mediadevice 118 may be programmed to respond to the IR command codes 124 andthe messages 126 sent by the remote control device 104. A device mayreceive the IR command codes 124 emitted by the remote control device104, and an IR stack of the device (e.g., as shown in FIG. 2 ) may sendcorresponding key commands to an IR receiving/controlling device (e.g.,any of the display 110, the stereo receiver 114, the streaming mediadevice 118, the IR emitter 119, or other devices). The IRreceiving/controlling device may govern the response of the device tothe IR command codes 124. In particular, when the IRreceiving/controlling device masks a key command received by the device,the IR receiving/controlling device may prevent the device fromperforming an action in response to the IR command code that resulted inthe key command being sent to the IR receiving/controlling device (e.g.,by refraining from sending a corresponding command to control thedevice).

In one or more embodiments, the table (or similarity map) for IR commandcode similarity may be pre-generated on a per-device coding schemesparse matrix. As a new device is added to the system, the IRreceiving/controlling device may be in communication with the remotecontrol device 104 to identify the new device and the IR command codesfor the new device, allowing the table to be updated with an indicationof the new device and the IR command codes for the new device.Alternatively, the table may be generated on-demand to reduce apreprocessing load for unlikely combinations of devices and IR commandcodes. The similarity of IR command codes may be established by editdistance heuristics (e.g., the based on the clocking and sampling ofdifferent IR command codes). The difference (e.g., distance) between anytwo IR command codes may result in a similarity score. The closer thedistance, the higher the similarity score between IR command codes maybe. When the similarity score exceeds a threshold similarity score, theIR receiving/controlling device may determine that an IR command codeindicated by the messages 126 from the remote control device 104 maycorrespond to the key command received from a device, thereby causingthe IR receiving/controlling device to mask key commands received fromthe device.

In one or more embodiments, the messages 126 may be sent using adifferent communication channel (e.g., different frequency or portion ofa frequency band) than the IR command codes 124, allowing adevice/application to identify the messages 126 in one channel whilereceiving the IR command codes 124 or indications of IR command codes124 in another channel at or near the same time.

In one or more embodiments, the remote control device 104 and any of thedevices controlled by the remote control devices (e.g., devices 110-119)may include a personal computer (PC), a wearable wireless device (e.g.,bracelet, watch, glasses, ring, etc.), a desktop computer, a mobilecomputer, a laptop computer, an Ultrabook™ computer, a notebookcomputer, a tablet computer, a server computer, a handheld computer, ahandheld device, an internet of things (IoT) device, a sensor device, aPDA device, a handheld PDA device, an on-board device, an off-boarddevice, a hybrid device (e.g., combining cellular phone functionalitieswith PDA device functionalities), a consumer device, a vehicular device,a non-vehicular device, a mobile or portable device, a non-mobile ornon-portable device, a mobile phone, a cellular telephone, a PCS device,a PDA device which incorporates a wireless communication device, amobile or portable GPS device, a DVB device, a relatively smallcomputing device, a non-desktop computer, a “carry small live large”(CSLL) device, an ultra mobile device (UMD), an ultra mobile PC (UMPC),a mobile internet device (MID), an “origami” device or computing device,a device that supports dynamically composable computing (DCC), acontext-aware device, a video device, an audio device, an A/V device, aset-top-box (STB), a Blu-ray disc (BD) player, a BD recorder, a digitalvideo disc (DVD) player, a high definition (HD) DVD player, a DVDrecorder, a HD DVD recorder, a personal video recorder (PVR), abroadcast HD receiver, a video source, an audio source, a video sink, anaudio sink, a stereo tuner, a broadcast radio receiver, a flat paneldisplay, a personal media player (PMP), a digital video camera (DVC), adigital audio player, a speaker, an audio receiver, an audio amplifier,a gaming device, a data source, a data sink, a digital still camera(DSC), a media player, a smartphone, a television, a music player, orthe like. Other devices, including smart devices such as lamps, climatecontrol, car components, household components, appliances, etc. may alsobe included in this list.

FIG. 2 illustrates an example system 200 of remote control signalmasking for multi-mode devices, in accordance with one or more exampleembodiments of the present disclosure.

Referring to FIG. 2 , the system 200 may include one or more remotecontrol devices 202 (e.g., similar to the remote control device 104 ofFIG. 1 , such as device 204 and device 206) for receiving user inputs(e.g., voice commands, touch inputs, gestures, etc.), translating theuser inputs into IR commands 208, and emitting the IR commands to one ormore devices 212 (e.g., a display 214 similar to the display 110 of FIG.1 , a stereo receiver 216 similar to the stereo receiver 114 of FIG. 1 ,a streaming media device 218 similar to the streaming media device 118of FIG. 1 , an IR emitter 219 similar to the IR emitter 119 of FIG. 1 ,a game console 220 similar to the game console 116 of FIG. 1 , and thelike). Alternatively or in addition, any of the one or more devices 212may emit IR commands similar to the IR commands 208. The IR commands 208may correspond to commands to control the speaker system 112, forexample. Any IR command of the IR commands 208 may correspond to asingle device of the speaker system 112 (e.g., an IR command mayuniquely correspond to one or more actions for a single device toperform), causing a device to perform an action, such as to turn on/off,to adjust volume, to change channels, to change inputs (e.g., HDMI 1,HDMI 2, AV, etc.), to select and present content, and the like. The oneor more remote control devices 202 or other devices (e.g., one or morecloud-based servers 250) also may send non-IR messages 210 (e.g., usinganother communication technique such as Bluetooth, Wi-Fi, etc.). In thismanner, the one or more remote control devices 202 may be multi-moderemote control devices. The messages 210 may include information tocontrol the one or more devices 212, such as indications that the one ormore remote control devices 202 sent the IR commands 208 (e.g., the oneor more remote control devices 202 may emit the IR commands 208 and sendthe messages 210 while emitting the IR commands 208). The messages 210may be used to determine which of the one or more devices 212 wasintended to be controlled by a respective IR command of the IR commands208. In this manner, non-IR messages may be sent from the same devicethat emitted an IR command received by the one or more devices 212, orby a different device than the device that emitted an IR commandreceived by the one or more devices 212, allowing the one or moredevices 212 to determine whether an IR command and any other IR commandsshould be masked.

Still referring to FIG. 2 , any of the devices 212 may include an IRstack 230 (e.g., an IR protocol stack) for detecting the IR commands 208and communicating with an application 232 (either on the same device oron another device of the one or more devices 212). For example, the IRstack 230 may send to the application 232 a key command associated withan IR command detected by the device that sends the key command to theapplication 232. Instances 234 of the application may execute on any ofthe one or more devices 212 (e.g., on the same device that sends the keycommand to the application 232 or on another device of the one or moredevices 212). For example, the display 214 may include the IR stack 230,and the application 232 and its instances 234 may execute on the display214 or on the streaming media device 218. Any of the one or more devices212 may include an operating system (OS) 235 (e.g., representing systemsoftware and/or hardware). The display 214 may detect the IR commands208 from the one or more remote control devices 202 and, when any of theIR commands 208 corresponds to an IR command for the display 214, maysend a key command to the OS 235 to indicate that the display 214received an IR command from the one or more remote control devices 202or another device. As explained further herein, based on the messages210 and/or command maps 236 (e.g., similarity maps that map IR commandcodes for different devices based on their respective similarities—suchas based on the pulses used for given IR command codes—which may bedetermined using edit distance heuristics and the like), the OS 235 maydetermine whether a key command received from any of the one or moredevices 212 indicates that the one or more devices 212 received an IRcommand code intended to control a different device (e.g., whether thedisplay 214 misinterpreted an IR command code as an IR command code tocontrol the display 214 when the IR command code actually was adifferent code to control the stereo receiver 216).

Still referring to FIG. 2 , one or more cloud-based servers 250 may bein communication with the one or more remote control devices 202 and/orthe one or more devices 212. The one or more cloud-based servers 250 mayreceive data, such as data indicative of voice utterances (e.g., thevoice utterance 106 of FIG. 1 ) received by the one or more remotecontrol devices 202 as inputs, and may translate the voice utterancesinto instructions for the or more remote control devices 202 and/or theone or more devices 212, such as instructions to cause any of thedevices to perform actions (e.g., causing the or more remote controldevices 202 to send the IR commands 208 and/or the messages 210). Theone or more cloud-based servers 250 may receive the key commands fromthe one or more devices 212, and may determine, using the command maps236, whether the key command corresponds to an IR command code that wasproperly or improperly interpreted, and instructing the application 232to cause performance of an action or to mask the IR command codes 208.The one or more cloud-based servers 250 and/or the one or more devices212 may update the command maps 236 as new devices are added or removedfrom control of the one or more remote control devices 202. The one ormore cloud-based servers 250 may send non-IR messages (e.g., similar tothe messages 210) that may be used by the one or more devices 212 todetermine that a contemporaneous IR command was received, and thereforewhether or not to mask the contemporaneous IR command and/or subsequentIR commands received.

In one or more embodiments, the one or more remote control devices 202and/or the one or more cloud-based servers 250 may send the messages 210using Bluetooth, Wi-Fi, or communication techniques other than IR whenthe one or more remote control devices 202 (or another device such asthe IR emitter 219) emit an IR command code. The messages 210 may besent while emitting the IR command code, and may indicate that the oneor more remote control devices 202 or another device emitted an IRcommand code at the same time, and/or may indicate the specific IRcommand code sent at the time when the message also was sent. The IRcommand code may be intended for a first device of the one or moredevices 212 (e.g., to control the first device), but may be identifiedby a second device of the one or more devices 212 that is programmed torespond to a similar IR command code. The second device may, in responseto identifying the IR command code, send a key command to the OS 235executing on the second device or a third device in communication withthe second device. Because of the messages 210, the OS 235 may determinethat the key command received from the second device is related to theIR command code indicated by a message of the messages 210. In response,the OS 235 may determine that the IR command code was not intended forthe second device. The messages 210 may include an indication of thekey(s) pressed/touched on the one or more remote control devices 202 (orother inputs received by the one or more remote control devices 202),and the OS 235 may determine whether the key(s) or other inputscorrespond to a command for the device that provided the key command, orto another device (e.g., using a keymap of the one or more remotecontrol devices 202, as included in the command maps 236).

In one or more embodiments, when the OS 235 determines that the IRcommand code was not intended for the second device, the OS 235 may maskthe reception of temporally coincident key commands received from thesecond device. For example, the OS 235 may ignore the key command andsubsequent key commands (e.g., may ignore subsequent IR command codesemitted by the multi-mode remote control device) for a period of time(e.g., the application instance temporarily may deactivate an IR mode).The temporary masking of all key commands (e.g., key presses on themulti-mode remote control device) may result in masking intentional keypresses intended to control the second device. Alternatively, the OS 235may mask key commands based on a similarity/association between the IRcommand indicated by the one or more messages and another IR commandcode that the OS 235 identifies as an IR command code that controls thesecond device. For example, the OS 235 may have access to a table of IRcommand codes (e.g., the command maps 236) based on the devicescontrolled by the multi-mode remote control device (e.g., the one ormore devices 212). When the OS 235 receives an indication that a firstIR command code was emitted, the OS 235 may determine, based on thetable, that the first IR command code is a code for the first device,and that the second device may be controlled by a second IR command codethat is similar to the first IR command code. The OS 235 therefore maydetermine that a key command received from the second device correspondsto the first IR command code, that the second device mistook the firstIR command code for the second IR command code, and may mask the keycommand and one or more subsequent key commands from the second device.

In one or more embodiments, the OS 235 may be programmed to respond tothe IR commands 208 and the messages 210 sent by the one or more remotecontrol devices 202. The second device may receive IR command codesemitted by the one or more remote control devices 202, and the IR stack230 of the second device may send corresponding key commands to the OS235. The OS 235 may govern the response of the second device to the IRcommands 208. In particular, when the OS 235 masks a key commandreceived by the second device, the OS 235 may prevent the second devicefrom performing an action in response to the IR command code thatresulted in the key command being sent to the OS 235 (e.g., byrefraining from sending a corresponding command to control the seconddevice). For example, when the IR command code is a command to turn onthe stereo receiver 216, and the display 214 identifies the IR commandcode, the OS 235 may prevent the display 214 from responding to the IRcommand code (e.g., from performing an unintended action).

In one or more embodiments, the command maps 236 may be pre-generated ona per-device coding scheme sparse matrix. As a new device is added tothe system, the one or more devices 212 may be in communication with theone or more remote control devices 202 and/or the one or morecloud-based servers 250 to identify the new device and the IR commandcodes for the new device, allowing the command maps 236 to be updatedwith an indication of the new device and the IR command codes for thenew device. Alternatively, the command maps 236 may be generatedon-demand to reduce a preprocessing load for unlikely combinations ofdevices and IR command codes. The similarity of IR command codes may beestablished by edit distance heuristics (e.g., the based on the clockingand sampling of different IR command codes). The difference (e.g.,distance) between any two IR command codes may result in a similarityscore. The closer the distance, the higher the similarity score betweenIR command codes may be. When the similarity score exceeds a thresholdsimilarity score, the OS 235 may determine that an IR command codeindicated by the one or more messages from the one or more remotecontrol devices 202 may correspond to the key command received from thesecond device, thereby causing the OS 235 to mask key commands receivedfrom the second device. The one or more remote control devices 202 alsomay communicate a keymap to the OS 235 to consider when evaluating IRcommand code similarity.

In one or more embodiments, the one or more remote control devices 202may include any combination of buttons, touch pads, touch screens,microphones, motion sensors, accelerometers, and other input devicesable to detect touches, movements, sounds, and gestures on or with theone or more remote control devices 202. The one or more remote controldevices 202 may receive inputs and translate the inputs into commands,such as infrared, optical, or other types of signals. The one or moreremote control devices 202 may connect to the one or more device 212using Bluetooth, peer-to-peer, Wi-Fi, or other connections.

Any of the one or more remote control devices 202, the one or moredevices 212, and/or the one or more cloud-based servers 250 may beconfigured to communicate with each other via one or more communicationsnetworks 270, 280, and/or 290 wirelessly or wired. Any of thecommunications networks 270, 280, and/or 290 may include, but notlimited to, any one of a combination of different types of suitablecommunications networks such as, for example, broadcasting networks,cable networks, public networks (e.g., the Internet), private networks,wireless networks, cellular networks, or any other suitable privateand/or public networks. Further, any of the communications networks 270,280, and/or 290 may have any suitable communication range associatedtherewith and may include, for example, global networks (e.g., theInternet), metropolitan area networks (MANs), wide area networks (WANs),local area networks (LANs), or personal area networks (PANs). Inaddition, any of the communications networks 270, 280, and/or 290 mayinclude any type of medium over which network traffic may be carriedincluding, but not limited to, coaxial cable, twisted-pair wire, opticalfiber, a hybrid fiber coaxial (HFC) medium, microwave terrestrialtransceivers, radio frequency communication mediums, white spacecommunication mediums, ultra-high frequency communication mediums,satellite communication mediums, or any combination thereof.

Any of the one or more devices 212 may include one or morecommunications antennas. The one or more communications antennas may beany suitable type of antennas corresponding to the communicationsprotocols used by the one or more devices 212. Some non-limitingexamples of suitable communications antennas include Wi-Fi antennas,Institute of Electrical and Electronics Engineers (IEEE) 802.11 familyof standards compatible antennas, directional antennas, non-directionalantennas, dipole antennas, folded dipole antennas, patch antennas,multiple-input multiple-output (MIMO) antennas, or the like. The one ormore communications antennas may be communicatively coupled to a radiocomponent to transmit and/or receive signals, such as communicationssignals to and/or from the one or more devices 212.

The one or more remote control devices 202 and the one or more devices212 may include hardware both for wireless communications such asBluetooth and Wi-Fi, and also IR hardware (as shown in FIG. 6 ), such asphotodiodes used to emit and detect IR signals.

FIG. 3 illustrates a flow diagram for a process 300 for remote controlsignal masking for multi-mode devices, in accordance with one or moreexample embodiments of the present disclosure.

At block 302, a device (e.g., the OS 235 executing on one of the one ormore devices 212 of FIG. 2 ) may receive a key command from the deviceor a second device (e.g., of the one or more devices 212 of FIG. 2 ),the key command indicating that the device or the second device (e.g.,operatively linked to the device) detected a first IR command code(e.g., of the IR commands 208 of FIG. 2 ) from a third device, such asmulti-mode remote control device (e.g., the one or more remote controldevices 202 of FIG. 2 ) or another device (e.g., the one or morecloud-based servers 250 and/or the one or more devices 212 of FIG. 2 ).The key command may be sent by an IR stack of the device or of thesecond device (e.g., the IR stack 230 of FIG. 2 ) because the device orthe second device detected the first IR command code and identified theIR command code as one that corresponds to an action to be performed bythe device or the second device (e.g., to turn on/off, to select/presentcontent, to change a setting, etc.).

At block 304, the device may receive a non-IR message (e.g., of themessages 210 of FIG. 2 ) from the multi-mode remote control device oranother device. The non-IR message may be sent and received usinganother communication technique, such as Wi-Fi, Blueooth, ZigBee, etc.The non-IR message may be sent during the same time when the multi-moderemote control device or another device sent the first IR command code,and may be used by the multi-mode remote control device to indicate tothe device (e.g., the application instance) that the multi-mode remotecontrol device emitted an IR command code at the same time, allowing thedevice to determine whether the key command was properly identified bythe device or the second device. In this manner, the device that emittedthe first IR command code may be the same as or different than thedevice that device that sent the non-IR message.

At block 306, the device may determine, based on the non-IR message,that the key command is associated with a second IR command code (e.g.,of the IR commands 208 of FIG. 2 ) for controlling a fourth device(e.g., not the device that provided the key command indicative of thefirst IR command code). In one embodiment, the non-IR message mayindicate a specific IR command code that the multi-mode remote controldevice emitted at the time when the multi-mode remote control device oranother device sent the non-IR message (e.g., as indicated by atimestamp of the non-IR message). The device may determine whether thefirst IR command code is the IR command code indicated by the non-IRmessage. The device may determine that the IR command code indicated bythe non-IR message is a different IR command code than the onecorresponding to the key command, and may identify the IR command codeindicated by the non-IR message as one used to control the fourth device(e.g., using the command maps 236 of FIG. 2 ). In another embodiment,the non-IR message may not indicate the specific IR command code emittedby the multi-mode remote control device or another device was emitted atthe time when the multi-mode remote control device or other device sentthe non-IR message, but rather may provide a more general indicationthat the multi-mode remote control device or another device emitted anunidentified IR command code to the fourth device. The non-IR messagemay include an indication of the key(s) pressed/touched on themulti-mode remote control device (or other inputs received by themulti-mode remote control device) or other device, and the device maydetermine whether the key(s) or other inputs correspond to a command forthe device or second device, or to the fourth device (e.g., using akeymap of the multi-mode remote control device or the other device).

At block 308, the device may prevent the key command from causing thedevice or second device from performing an action (e.g., may mask thekey command). For example, the device may discard the key commandinstead of responding to the key command by performing an action orinstead of sending instructions to the device or second device toperform the action. Optionally, the device may deactivate an IR mode ofthe device or second device for a time period (e.g., temporal masking)or may mask IR command codes on a code-association/similarity basis(e.g., using the command maps 236 of FIG. 2 to identify similar IRcommand codes that correspond to a device other than the device orsecond device, and masking key commands from the device or second devicethat match similar IR command codes for a different device). Thesimilarity map (e.g., the command maps 236 of FIG. 2 ) may be generatedon a per-device by per-coding scheme matrix, or on demand to reduce apreprocessing load for unlikely combinations. The similarity of codesmay be determined using edit-distance heuristics or other techniques foranalyzing the command codes. After a time period has expired, the devicemay reactivate the IR mode, optionally. The masking includes blockingand discarding of all received key commands during a time period, or keycommands that map to similar key commands (e.g., based on the similaritymapping indicating similarities between key commands that correspond todifferent devices).

FIG. 4 illustrates a flow diagram for a process 400 for remote controlsignal masking for multi-mode devices, in accordance with one or moreexample embodiments of the present disclosure.

At block 402, a device (e.g., OS 235 executing on one of the one or moredevices 212 of FIG. 2 ) may receive a key command from the device or asecond device (e.g., of the one or more devices 212 of FIG. 2 ), the keycommand indicating that the device or the second device (e.g.,operatively linked to the device) detected a first IR command code(e.g., of the IR commands 208 of FIG. 2 ) from a third device, such as amulti-mode remote control device (e.g., the one or more remote controldevices 202 of FIG. 2 ) or another device (e.g., the one or morecloud-based servers 250 and/or the one or more devices 212 of FIG. 2 ).The key command may be sent by an IR stack of the device or of thesecond device (e.g., the IR stack 230 of FIG. 2 ) because the device orthe second device detected the first IR command code and identified theIR command code as one that corresponds to an action to be performed bythe device or the second device (e.g., to turn on/off, to select/presentcontent, to change a setting, etc.).

At block 404, the device may determine whether an IR mode of the deviceor second device is active (e.g., whether the IR mode has beendeactivated as part of a temporary masking scheme). The IR mode may beactive or inactive for all key commands, or may be inactive for some keycommands (e.g., key commands that map to similar key commands based onthe similarity mapping indicating similarities between key commands thatcorrespond to different devices). When the IR mode is inactive, thedevice may discard the key command at block 406 to mask the key command.At block 406, when the IR mode is inactive (e.g., masking is active),the device may discard the key command and prevent the first or seconddevice from performing an action based on the first IR command code.

When the IR mode is active and temporal masking is not being performed,the process 400 may continue at block 408, where the device maydetermine whether the multi-mode remote control device or another devicesent a non-IR message (e.g., of the messages 210 of FIG. 2 ) indicatingthat the key command is associated with a second IR command code forcontrolling a fourth device. In one embodiment, the non-IR message mayindicate a specific IR command code that the multi-mode remote controldevice or another device emitted at the time when the multi-mode remotecontrol device or another device sent the non-IR message (e.g., asindicated by a timestamp of the non-IR message). The device maydetermine whether the first IR command code is the IR command codeindicated by the non-IR message. The device may determine that the IRcommand code indicated by the non-IR message is a different IR commandcode than the one corresponding to the key command, and may identify theIR command code indicated by the non-IR message as one used to controlthe fourth device (e.g., using the command maps 236 of FIG. 2 ). Inanother embodiment, the non-IR message may not indicate the specific IRcommand code emitted by the multi-mode remote control device or anotherdevice was emitted at the time when the multi-mode remote control deviceor another device sent the non-IR message, but rather may provide a moregeneral indication that the multi-mode remote control device or anotherdevice emitted an unidentified IR command code to the fourth device. Thenon-IR message may include an indication of the key(s) pressed/touchedon the multi-mode remote control device (or other inputs received by themulti-mode remote control device) or another device, and the device maydetermine whether the key(s) or other inputs correspond to a command forthe device or second device, or to the fourth device (e.g., using akeymap of the multi-mode remote control device or another device).

When the device determines, based on the non-IR message, that the keycommand is associated with the second IR command code for the thirddevice, the device may block actions for the key command and/or otherkey commands. For example, the device may discard the key command andoptionally, at block 410, may implement temporal masking by deactivatingthe IR mode for a time period (e.g., to mask one or more key commands,whether all key commands or those that map to similar key commands usinga similarity mapping, for example). Optionally, at block 411, the devicemay extend the time period during which the IR mode is to be inactive.When the IR mode is active and temporal masking is not being performed,the device may determine whether the key command maps to a similar keycommand, and therefore is a key command likely to be confused (e.g., aspart of block 408).

When the device determines, based on the non-IR message, that the keycommand is associated with the second IR command code for the thirddevice (e.g., is associated with the first command code), the device atblock 412 may cause the first or second device (e.g., the device thatprovided the key command indication to the device) to perform an action(e.g., corresponding to the key command). For example, the device mayexecute instructions to perform the action, such as selecting andplaying content, or may send instructions to the first or second deviceto perform the action.

FIG. 5 illustrates a flow diagram for a process 500 for remote controlsignal masking for multi-mode devices, in accordance with one or moreexample embodiments of the present disclosure.

At block 502, a device (e.g., the OS 235 executing on one of the one ormore devices 212 of FIG. 2 ) may receive a key command from the deviceor a second device (e.g., of the one or more devices 212 of FIG. 2 ),the key command indicating that the device or the second device (e.g.,operatively linked to the device) detected a first IR command code(e.g., of the IR commands 208 of FIG. 2 ) from a multi-mode remotecontrol device (e.g., the one or more remote control devices 202 of FIG.2 ). The key command may be sent by an IR stack of the device or of thesecond device (e.g., the IR stack 230 of FIG. 2 ) because the device orthe second device detected the first IR command code and identified theIR command code as one that corresponds to an action to be performed bythe device or the second device (e.g., to turn on/off, to select/presentcontent, to change a setting, etc.).

At block 504, the device may receive a non-IR message (e.g., of themessages 210 of FIG. 2 ) from a third device, such as the multi-moderemote control device or another device (e.g., the one or more devices212 or the one or more cloud-based servers 250 of FIG. 2 ). The non-IRmessage may be sent and received using another communication technique,such as Wi-Fi, Bluetooth, ZigBee, etc. The non-IR message may be sentduring the same time when the multi-mode remote control device oranother device sent the first IR command code, and may be used by themulti-mode remote control device or another device to indicate to thedevice (e.g., the OS 235) that the multi-mode remote control device oranother device emitted a second IR command code at the same time,allowing the device to determine whether the key command was properlyidentified by the device or the second device.

At block 506, the device may determine, based on a code similaritymapping (e.g., the command maps 236 of FIG. 2 ), that first IR commandcode maps to the second IR command code for controlling a fourth device(e.g., not the device that provided the key command indicative of thefirst IR command code). The code similarity mapping may map IR commandcodes for different devices based on their similarities (e.g., usingedit-distance heuristics or other techniques). In one embodiment, thenon-IR message may indicate a specific IR command code that themulti-mode remote control device emitted at the time when the multi-moderemote control device sent the non-IR message (e.g., as indicated by atimestamp of the non-IR message). The device may determine whether thefirst IR command code is the IR command code indicated by the non-IRmessage. The device may determine that the IR command code indicated bythe non-IR message is a different IR command code than the onecorresponding to the key command, and may identify the IR command codeindicated by the non-IR message as one used to control the fourth device(e.g., using the command maps 236 of FIG. 2 ). In another embodiment,the non-IR message may not indicate the specific IR command code emittedby the multi-mode remote control device or another device was emitted atthe time when the multi-mode remote control device or another devicesent the non-IR message, but rather may provide a more generalindication that the multi-mode remote control device or another deviceemitted an unidentified IR command code to the fourth device. The non-IRmessage may include an indication of the key(s) pressed/touched on themulti-mode remote control device (or other inputs received by themulti-mode remote control device or another device), and the device maydetermine whether the key(s) or other inputs correspond to a command forthe device or second device, or to the fourth device (e.g., using akeymap of the multi-mode remote control device or another device).

At block 508, the device may prevent the key command from causing thedevice or second device from performing an action (e.g., may mask thekey command). For example, the device may discard the key commandinstead of responding to the key command by performing an action orinstead of sending instructions to the device or second device toperform the action. The device may deactivate an IR mode of the deviceor second device for a time period (e.g., temporal masking), for one ormore command codes (e.g., key commands) or may mask IR command codes ona code-association/similarity basis (e.g., using the command maps 236 ofFIG. 2 to identify similar IR command codes that correspond to a deviceother than the device or second device, and masking key commands fromthe device or second device that match similar IR command codes for adifferent device). The similarity map (e.g., the command maps 236 ofFIG. 2 ) may be generated on a per-device by per-coding scheme matrix,or on demand to reduce a preprocessing load for unlikely combinations.The similarity of codes may be determined using edit-distance heuristicsor other techniques for analyzing the command codes. After a time periodhas expired, the device may reactivate the IR mode.

The examples presented herein are not intended to be limiting.

FIG. 6 illustrates a block diagram of an example of a machine 600 (e.g.,the remote control device 104 of FIG. 1 , the display 110 of FIG. 1 ,the speaker system 112 of FIG. 1 , the stereo receiver 114 of FIG. 1 ,the game console 116 of FIG. 1 , the streaming media device 118 of FIG.1 , the one or more remote control devices 202 of FIG. 2 , the one ormore devices 212 of FIG. 2 ) or system upon which any one or more of thetechniques (e.g., methodologies) discussed herein may be performed. Inother embodiments, the machine 600 may operate as a standalone device ormay be connected (e.g., networked) to other machines. In a networkeddeployment, the machine 600 may operate in the capacity of a servermachine, a client machine, or both in server-client networkenvironments. In an example, the machine 600 may act as a peer machinein Wi-Fi direct, peer-to-peer (P2P) (or other distributed) networkenvironments. The machine 600 may be a server, a media device, a remotecontrol device, a streaming media device, a personal computer (PC), atablet PC, a set-top box (STB), a personal digital assistant (PDA), amobile telephone, a wearable computer device, a web appliance, a networkrouter, a switch or bridge, or any machine capable of executinginstructions (sequential or otherwise) that specify actions to be takenby that machine, such as a base station. Further, while only a singlemachine is illustrated, the term “machine” shall also be taken toinclude any collection of machines that individually or jointly executea set (or multiple sets) of instructions to perform any one or more ofthe methodologies discussed herein, such as cloud computing, software asa service (SaaS), or other computer cluster configurations.

Examples, as described herein, may include or may operate on logic or anumber of components, modules, or mechanisms. Modules are tangibleentities (e.g., hardware) capable of performing specified operationswhen operating. A module includes hardware. In an example, the hardwaremay be specifically configured to carry out a specific operation (e.g.,hardwired). In another example, the hardware may include configurableexecution units (e.g., transistors, circuits, etc.) and a computerreadable medium containing instructions where the instructions configurethe execution units to carry out a specific operation when in operation.The configuring may occur under the direction of the executions units ora loading mechanism. Accordingly, the execution units arecommunicatively coupled to the computer-readable medium when the deviceis operating. In this example, the execution units may be a member ofmore than one module. For example, under operation, the execution unitsmay be configured by a first set of instructions to implement a firstmodule at one point in time and reconfigured by a second set ofinstructions to implement a second module at a second point in time.

The machine (e.g., computer system) 600 may include a hardware processor602 (e.g., a central processing unit (CPU), a graphics processing unit(GPU), a hardware processor core, or any combination thereof), a mainmemory 604 and a static memory 606, some or all of which may communicatewith each other via an interlink (e.g., bus) 608. The machine 600 mayfurther include a power management device 632, a graphics display device610, an alphanumeric input device 612 (e.g., a keyboard), and a userinterface (UI) navigation device 614 (e.g., a mouse). In an example, thegraphics display device 610, alphanumeric input device 612, and UInavigation device 614 may be a touch screen display. The machine 600 mayadditionally include a storage device (i.e., drive unit) 616, a signalgeneration device 618 (e.g., a speaker, or emitters such aslight-emitting diodes if the machine 600 is a remote control device), amasking device 619, a network interface device/transceiver 620 coupledto antenna(s) 630, and one or more sensors 628, such as IR sensors, aglobal positioning system (GPS) sensor, a compass, an accelerometer, orother sensor. The machine 600 may include an output controller 634, suchas a serial (e.g., universal serial bus (USB), parallel, or other wiredor wireless (e.g., infrared (IR), near field communication (NFC), etc.)connection to communicate with or control one or more peripheral devices(e.g., a media device, etc.)). The machine 600 may include IR hardware650 (e.g., the IR stack 230 of FIG. 2 , photodiodes foremitting/detecting IR signals, and the like).

The storage device 616 may include a machine readable medium 622 onwhich is stored one or more sets of data structures or instructions 624(e.g., software) embodying or utilized by any one or more of thetechniques or functions described herein. The instructions 624 may alsoreside, completely or at least partially, within the main memory 604,within the static memory 606, or within the hardware processor 602during execution thereof by the machine 600. In an example, one or anycombination of the hardware processor 602, the main memory 604, thestatic memory 606, or the storage device 616 may constitutemachine-readable media.

The masking device 619 may carry out or perform any of the operationsand processes (e.g., process 300 of FIG. 3 , process 400 of FIG. 4 ,process 500 of FIG. 5 ) described and shown above. For example, themasking device 619 may execute the application 232 of FIG. 2 using theinstances 234 of FIG. 2 , causing the machine 600 to perform any of theoperations and processes described and shown above.

It is understood that the above are only a subset of what the maskingdevice 619 may be configured to perform and that other functionsincluded throughout this disclosure may also be performed by the maskingdevice 619.

While the machine-readable medium 622 is illustrated as a single medium,the term “machine-readable medium” may include a single medium ormultiple media (e.g., a centralized or distributed database, and/orassociated caches and servers) configured to store the one or moreinstructions 624.

Various embodiments may be implemented fully or partially in softwareand/or firmware. This software and/or firmware may take the form ofinstructions contained in or on a non-transitory computer-readablestorage medium. Those instructions may then be read and executed by oneor more processors to enable performance of the operations describedherein. The instructions may be in any suitable form, such as but notlimited to source code, compiled code, interpreted code, executablecode, static code, dynamic code, and the like. Such a computer-readablemedium may include any tangible non-transitory medium for storinginformation in a form readable by one or more computers, such as but notlimited to read only memory (ROM); random access memory (RAM); magneticdisk storage media; optical storage media; a flash memory, etc.

The term “machine-readable medium” may include any medium that iscapable of storing, encoding, or carrying instructions for execution bythe machine 600 and that cause the machine 600 to perform any one ormore of the techniques of the present disclosure, or that is capable ofstoring, encoding, or carrying data structures used by or associatedwith such instructions. Non-limiting machine-readable medium examplesmay include solid-state memories and optical and magnetic media. In anexample, a massed machine-readable medium includes a machine-readablemedium with a plurality of particles having resting mass. Specificexamples of massed machine-readable media may include non-volatilememory, such as semiconductor memory devices (e.g., electricallyprogrammable read-only memory (EPROM), or electrically erasableprogrammable read-only memory (EEPROM)) and flash memory devices;magnetic disks, such as internal hard disks and removable disks;magneto-optical disks; and CD-ROM and DVD-ROM disks.

The instructions 624 may further be transmitted or received over acommunications network 626 using a transmission medium via the networkinterface device/transceiver 620 utilizing any one of a number oftransfer protocols (e.g., frame relay, internet protocol (IP),transmission control protocol (TCP), user datagram protocol (UDP),hypertext transfer protocol (HTTP), etc.). Example communicationsnetworks may include a local area network (LAN), a wide area network(WAN), a packet data network (e.g., the Internet), mobile telephonenetworks (e.g., cellular networks), plain old telephone (POTS) networks,wireless data networks (e.g., Institute of Electrical and ElectronicsEngineers (IEEE) 802.11 family of standards known as Wi-Fi®, IEEE 802.16family of standards known as WiMax®), IEEE 802.15.4 family of standards,and peer-to-peer (P2P) networks, among others. In an example, thenetwork interface device/transceiver 620 may include one or morephysical jacks (e.g., Ethernet, coaxial, or phone jacks) or one or moreantennas to connect to the communications network 626. In an example,the network interface device/transceiver 620 may include a plurality ofantennas to wirelessly communicate using at least one of single-inputmultiple-output (SIMO), multiple-input multiple-output (MIMO), ormultiple-input single-output (MISO) techniques. The term “transmissionmedium” shall be taken to include any intangible medium that is capableof storing, encoding, or carrying instructions for execution by themachine 600 and includes digital or analog communications signals orother intangible media to facilitate communication of such software.

The operations and processes described and shown above may be carriedout or performed in any suitable order as desired in variousimplementations. Additionally, in certain implementations, at least aportion of the operations may be carried out in parallel. Furthermore,in certain implementations, less than or more than the operationsdescribed may be performed.

The word “exemplary” is used herein to mean “serving as an example,instance, or illustration.” Any embodiment described herein as“exemplary” is not necessarily to be construed as preferred oradvantageous over other embodiments. The terms “computing device,” “userdevice,” “communication station,” “station,” “handheld device,” “mobiledevice,” “wireless device” and “user equipment” (UE) as used hereinrefers to a wireless communication device such as a cellular telephone,a smartphone, a tablet, a netbook, a wireless terminal, a laptopcomputer, a femtocell, a high data rate (HDR) subscriber station, anaccess point, a printer, a point of sale device, an access terminal, orother personal communication system (PCS) device. The device may beeither mobile or stationary.

As used within this document, the term “communicate” is intended toinclude transmitting, or receiving, or both transmitting and receiving.This may be particularly useful in claims when describing theorganization of data that is being transmitted by one device andreceived by another, but only the functionality of one of those devicesis required to infringe the claim. Similarly, the bidirectional exchangeof data between two devices (both devices transmit and receive duringthe exchange) may be described as “communicating,” when only thefunctionality of one of those devices is being claimed. The term“communicating” as used herein with respect to a wireless communicationsignal includes transmitting the wireless communication signal and/orreceiving the wireless communication signal. For example, a wirelesscommunication unit, which is capable of communicating a wirelesscommunication signal, may include a wireless transmitter to transmit thewireless communication signal to at least one other wirelesscommunication unit, and/or a wireless communication receiver to receivethe wireless communication signal from at least one other wirelesscommunication unit.

As used herein, unless otherwise specified, the use of the ordinaladjectives “first,” “second,” “third,” etc., to describe a commonobject, merely indicates that different instances of like objects arebeing referred to and are not intended to imply that the objects sodescribed must be in a given sequence, either temporally, spatially, inranking, or in any other manner.

Some embodiments may be used in conjunction with various devices andsystems, for example, a personal computer (PC), a desktop computer, amobile computer, a laptop computer, a notebook computer, a tabletcomputer, a server computer, a handheld computer, a handheld device, apersonal digital assistant (PDA) device, a handheld PDA device, anon-board device, an off-board device, a hybrid device, a vehiculardevice, a non-vehicular device, a mobile or portable device, a consumerdevice, a non-mobile or non-portable device, a wireless communicationstation, a wireless communication device, a wireless access point (AP),a wired or wireless router, a wired or wireless modem, a video device,an audio device, an audio-video (A/V) device, a wired or wirelessnetwork, a wireless area network, a wireless video area network (WVAN),a local area network (LAN), a wireless LAN (WLAN), a personal areanetwork (PAN), a wireless PAN (WPAN), and the like.

Some embodiments may be used in conjunction with one way and/or two-wayradio communication systems, cellular radio-telephone communicationsystems, a mobile phone, a cellular telephone, a wireless telephone, apersonal communication system (PCS) device, a PDA device whichincorporates a wireless communication device, a mobile or portableglobal positioning system (GPS) device, a device which incorporates aGPS receiver or transceiver or chip, a device which incorporates an RFIDelement or chip, a multiple input multiple output (MIMO) transceiver ordevice, a single input multiple output (SIMO) transceiver or device, amultiple input single output (MIS 0) transceiver or device, a devicehaving one or more internal antennas and/or external antennas, digitalvideo broadcast (DVB) devices or systems, multi-standard radio devicesor systems, a wired or wireless handheld device, e.g., a smartphone, awireless application protocol (WAP) device, or the like.

Some embodiments may be used in conjunction with one or more types ofwireless communication signals and/or systems following one or morewireless communication protocols, for example, radio frequency (RF),infrared (IR), frequency-division multiplexing (FDM), orthogonal FDM(OFDM), time-division multiplexing (TDM), time-division multiple access(TDMA), extended TDMA (E-TDMA), general packet radio service (GPRS),extended GPRS, code-division multiple access (CDMA), wideband CDMA(WCDMA), CDMA 2000, single-carrier CDMA, multi-carrier CDMA,multi-carrier modulation (MDM), discrete multi-tone (DMT), Bluetooth®,global positioning system (GPS), Wi-Fi, Wi-Max, ZigBee, ultra-wideband(UWB), global system for mobile communications (GSM), 2G, 2.5G, 3G,3.5G, 4G, fifth generation (5G) mobile networks, 3GPP, long termevolution (LTE), LTE advanced, enhanced data rates for GSM Evolution(EDGE), or the like. Other embodiments may be used in various otherdevices, systems, and/or networks.

It is understood that the above descriptions are for purposes ofillustration and are not meant to be limiting.

Although specific embodiments of the disclosure have been described, oneof ordinary skill in the art will recognize that numerous othermodifications and alternative embodiments are within the scope of thedisclosure. For example, any of the functionality and/or processingcapabilities described with respect to a particular device or componentmay be performed by any other device or component. Further, whilevarious illustrative implementations and architectures have beendescribed in accordance with embodiments of the disclosure, one ofordinary skill in the art will appreciate that numerous othermodifications to the illustrative implementations and architecturesdescribed herein are also within the scope of this disclosure.

Program module(s), applications, or the like disclosed herein mayinclude one or more software components including, for example, softwareobjects, methods, data structures, or the like. Each such softwarecomponent may include computer-executable instructions that, responsiveto execution, cause at least a portion of the functionality describedherein (e.g., one or more operations of the illustrative methodsdescribed herein) to be performed.

A software component may be coded in any of a variety of programminglanguages. An illustrative programming language may be a lower-levelprogramming language such as an assembly language associated with aparticular hardware architecture and/or operating system platform. Asoftware component comprising assembly language instructions may requireconversion into executable machine code by an assembler prior toexecution by the hardware architecture and/or platform.

Another example programming language may be a higher-level programminglanguage that may be portable across multiple architectures. A softwarecomponent comprising higher-level programming language instructions mayrequire conversion to an intermediate representation by an interpreteror a compiler prior to execution.

Other examples of programming languages include, but are not limited to,a macro language, a shell or command language, a job control language, ascript language, a database query or search language, or a reportwriting language. In one or more example embodiments, a softwarecomponent comprising instructions in one of the foregoing examples ofprogramming languages may be executed directly by an operating system orother software component without having to be first transformed intoanother form.

A software component may be stored as a file or other data storageconstruct. Software components of a similar type or functionally relatedmay be stored together such as, for example, in a particular directory,folder, or library. Software components may be static (e.g.,pre-established or fixed) or dynamic (e.g., created or modified at thetime of execution).

Software components may invoke or be invoked by other softwarecomponents through any of a wide variety of mechanisms. Invoked orinvoking software components may comprise other custom-developedapplication software, operating system functionality (e.g., devicedrivers, data storage (e.g., file management) routines, other commonroutines and services, etc.), or third-party software components (e.g.,middleware, encryption, or other security software, database managementsoftware, file transfer or other network communication software,mathematical or statistical software, image processing software, andformat translation software).

Software components associated with a particular solution or system mayreside and be executed on a single platform or may be distributed acrossmultiple platforms. The multiple platforms may be associated with morethan one hardware vendor, underlying chip technology, or operatingsystem. Furthermore, software components associated with a particularsolution or system may be initially written in one or more programminglanguages, but may invoke software components written in anotherprogramming language.

Computer-executable program instructions may be loaded onto aspecial-purpose computer or other particular machine, a processor, orother programmable data processing apparatus to produce a particularmachine, such that execution of the instructions on the computer,processor, or other programmable data processing apparatus causes one ormore functions or operations specified in any applicable flow diagramsto be performed. These computer program instructions may also be storedin a computer-readable storage medium (CRSM) that upon execution maydirect a computer or other programmable data processing apparatus tofunction in a particular manner, such that the instructions stored inthe computer-readable storage medium produce an article of manufactureincluding instruction means that implement one or more functions oroperations specified in any flow diagrams. The computer programinstructions may also be loaded onto a computer or other programmabledata processing apparatus to cause a series of operational elements orsteps to be performed on the computer or other programmable apparatus toproduce a computer-implemented process.

Additional types of CRSM that may be present in any of the devicesdescribed herein may include, but are not limited to, programmablerandom access memory (PRAM), SRAM, DRAM, RAM, ROM, electrically erasableprogrammable read-only memory (EEPROM), flash memory or other memorytechnology, compact disc read-only memory (CD-ROM), digital versatiledisc (DVD) or other optical storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to store the information and which can beaccessed. Combinations of any of the above are also included within thescope of CRSM. Alternatively, computer-readable communication media(CRCM) may include computer-readable instructions, program module(s), orother data transmitted within a data signal, such as a carrier wave, orother transmission. However, as used herein, CRSM does not include CRCM.

Although embodiments have been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the disclosure is not necessarily limited to the specific featuresor acts described. Rather, the specific features and acts are disclosedas illustrative forms of implementing the embodiments. Conditionallanguage, such as, among others, “can,” “could,” “might,” or “may,”unless specifically stated otherwise, or otherwise understood within thecontext as used, is generally intended to convey that certainembodiments could include, while other embodiments do not include,certain features, elements, and/or steps. Thus, such conditionallanguage is not generally intended to imply that features, elements,and/or steps are in any way required for one or more embodiments or thatone or more embodiments necessarily include logic for deciding, with orwithout user input or prompting, whether these features, elements,and/or steps are included or are to be performed in any particularembodiment.

What is claimed is:
 1. A method for masking infrared (IR) command codes,the method comprising: receiving, by a first device, a first key commandfrom an IR stack of the first device or of a second device operativelyconnected to the first device, wherein the first key command correspondsto a first IR command code received by the IR stack and is intended tocontrol the first device or the second device; receiving, by the firstdevice, a message using a Wi-Fi communication technique or a Bluetoothcommunication technique, wherein the message indicates that the firstkey command corresponds to a second IR command code that has been sentby another device and is intended to control a third device, the secondIR command code different than the third IR command code; determining,by the first device, based on the message, that the first key commandcorresponds to the second IR command code for controlling the thirddevice instead of to the first IR command code; preventing, by the firstdevice, based on the determination that the first key commandcorresponds to the second IR command code for controlling the thirddevice, the first key command from causing the first device or thesecond device to perform an action; deactivating, by the first device,based on the determination that the first key command corresponds to thesecond IR command code for controlling the third device, an IR mode of amedia player application instance for a time period; receiving, by thefirst device, a second key command from the IR stack during the timeperiod, wherein the second key command corresponds to a third IR commandcode received by the IR stack; and discarding, by the first device, thesecond key command.
 2. The method of claim 1, further comprising:determining that the time period has expired; and activating based onthe determination that the time period has expired, the IR mode of themedia player application instance.
 3. The method of claim 1, furthercomprising: determining, based on a mapping, that the first IR commandcode maps to the second IR command code, wherein determining that thefirst key command corresponds to the second IR command code is based ondetermining that the first IR command code maps to the second IR commandcode.
 4. The method of claim 1, further comprising: determining that themessage includes an indication of the second IR command code, whereindetermining that the first key command corresponds to the second IRcommand code is based on the indication of the second IR command code.5. A method for masking infrared (IR) command codes, the methodcomprising: receiving, by at least one processor of a first device, afirst key command from the first device or a second device operativelyconnected to the first device, wherein the first key command correspondsto a first IR command code received by the first device or the seconddevice and is intended to control the first device or the second device;receiving, by the at least one processor, a message using acommunication technique different than IR, wherein the message indicatesthat the first key command corresponds to a second IR command code thathas been sent by another device and is intended to control a thirddevice, the second IR command code different than the first IR commandcode; determining, by the at least one processor, based on the message,that the first key command corresponds to the second IR command code forcontrolling the third device instead of to the first IR command code;and preventing, by the at least one processor, based on thedetermination that the first key command corresponds to the second IRcommand code for controlling the third device, the first key commandfrom causing the first device or the second device to perform an action.6. The method of claim 5, wherein the first key command is indicative ofthe first IR command code being received by the first device from amulti-mode remote control device, the method further comprising:determining, based on a mapping, that the first IR command code maps tothe second IR command code, wherein determining that the first keycommand corresponds to the second IR command code is based ondetermining that the first IR command code maps to the second IR commandcode, and wherein the preventing comprises preventing the first keycommand from causing the first device to perform the action.
 7. Themethod of claim 5, wherein the first key command is indicative of thefirst IR command code being received by the second device from amulti-mode remote control device, the method further comprising:determining, based on a mapping, that the first IR command code maps tothe second IR command code, wherein determining that the first keycommand corresponds to the second IR command code is based ondetermining that the first IR command code maps to the second IR commandcode, and wherein the preventing comprises preventing the first keycommand from causing the second device to perform the action.
 8. Themethod of claim 5, wherein the communication technique is Wi-Fi orBluetooth.
 9. The method of claim 5, further comprising: determiningthat the message includes an indication of the second IR command code,wherein determining that the first key command corresponds to the secondIR command code is based on the indication of the second IR commandcode.
 10. The method of claim 5, further comprising: deactivating, basedon the determination that the first key command corresponds to thesecond IR command code for controlling the third device, an IR mode ofthe first device.
 11. The method of claim 10, wherein the IR mode isdeactivated for a time period, the method further comprising: receivinga second key command from the first device or the second device duringthe time period, wherein the second key command corresponds to a thirdIR command code received by the first device or the second device; anddiscarding the second key command, wherein the preventing is based onthe discarding.
 12. The method of claim 10, wherein the IR mode isdeactivated for a time period, the method further comprising:determining that the time period has expired; and activating, based onthe determination that the time period has expired, the IR mode of thefirst device.
 13. The method of claim 5, further comprising: determininga first time associated with receiving the message; and determining asecond time associated with receiving the first key command from thefirst device or the second device, wherein determining that the firstkey command corresponds to the second IR command code is based on thefirst time and the second time.
 14. The method of claim 5, furthercomprising: receiving a second key command from the first device or thesecond device, wherein the second key command corresponds to a third IRcommand code received by the first device or the second device;receiving a second message; determining, based on the second message,that the third IR command code corresponds to the second key command;and causing the first device or the second device to perform a secondaction based on the second key command.
 15. A device for maskinginfrared (IR) command codes, the device comprising memory coupled to atleast one processor, the at least one processor configured to: receive afirst key command from the device, wherein the first key commandcorresponds to a first IR command code received by the device and isintended to control the device; receive a message using a communicationtechnique different than IR, wherein the message indicates that thefirst IR command code corresponds to a second IR command code that hasbeen sent by another device and is intended to control a second device,the second IR command code different than the first IR command code;determine, based on the message, that the first key command correspondsto the second IR command code for controlling the second device insteadof to the first IR command code; and prevent, based on the determinationthat the first key command corresponds to the second IR command code forcontrolling the second device, the first key command from causing thedevice to perform an action.
 16. The device of claim 15, wherein the atleast one processor is further configured to: deactivate, based on thedetermination that the first key command corresponds to the second IRcommand code for controlling the second device, an IR mode of thedevice.
 17. The device of claim 15, wherein the at least one processoris further configured to: determine, based on a mapping, that the firstIR command code maps to the second IR command code, wherein to determinethat the first key command corresponds to the second IR command code isbased on the determination that the first IR command code maps to thesecond IR command code.
 18. The device of claim 15, wherein the at leastone processor is further configured to: determine that the messageincludes an indication of the second IR command code, wherein todetermine that the first key command corresponds to the second IRcommand code is based on the indication of the second IR command code.19. The device of claim 15, wherein the at least one processor isfurther configured to: determine a first time associated with receivingthe message; and determine a second time associated with receiving thefirst key command, wherein to determine that the first key commandcorresponds to the second IR command code is based on the first time andthe second time.
 20. The device of claim 15, wherein the communicationtechnique is Wi-Fi or Bluetooth.